local dx_sqlite3 = require("dx_sqlite3")
local log = require("dx_logger")
local sqllite3_init = {}

-- 初始化sqllite数据库连接
function sqllite3_init.init()
  local sqlite_client = dx_sqlite3.open("/dx_cc101_app/data/cc101_app.db")
  if not sqlite_client then
    log.error("[sqlite实例]初始化失败！")
  end
  log.info("[sqllite通道]初始化完成")
  _G.sqlite_client = sqlite_client
  -- 初始化表
  return sqllite3_init.init_tables()
end

-- 释放sqllite资源
function sqllite3_init.exit()
  dx_sqlite3.close(sqllite3_init.sqlite_client)
end

-- 创建表
function sqllite3_init.init_tables()
  -- 白名单表
  dx_sqlite3.execute(
    sqlite_client,
    [[
      create table if not exists whitelists(
        id varchar(128) PRIMARY KEY,
        type integer,
        code varchar(128),
        extra text,
        time text
      )
    ]]
  )

  -- 白名单表 建立联合索引
  dx_sqlite3.execute(
    sqlite_client,
    [[
      CREATE INDEX if not exists inx_whitelists_code_type on whitelists (code, type)
    ]]
  )

  -- 通行记录表
  dx_sqlite3.execute(
    sqlite_client,
    [[
      create table if not exists passrecords(
        id varchar(128) ,
        code varchar(128) ,
        type integer,
        time integer,
        result integer,
        extra text
      )
    ]]
  )
  log.info("[数据库表]初始化完成")
  return true
end

return sqllite3_init
